00001 /////////////////////////////////////////////////////////////////////////////// 00002 /// @file Channels.hpp 00003 /// 00004 /// @brief Destiny Sound System Channel handling 00005 /// 00006 /// @author paradoxnj 00007 /// 00008 /// This file is the intellectual property of Novus Delta, LLC.. Usage of the 00009 /// contents of this file is subject to the Destiny3D Member License which 00010 /// can be found at http://www.destiny3d.com. Any other usage is prohibited. 00011 /// 00012 /// This file is distributed "AS IS" without warranty of any kind. Novus 00013 /// Delta, LLC. does not guarantee the fitness of the contents of this file 00014 /// for any particular purpose. 00015 /// 00016 /// Copyright (C) 2001-2003 Novus Delta, LLC. All Rights Reserved. 00017 /// 00018 /// <hr> 00019 /// Change History 00020 /// <hr> 00021 /// 00022 /// @date Jan 2002 00023 /// @author paradoxnj 00024 /// @remarks Creation 00025 /// 00026 /////////////////////////////////////////////////////////////////////////////// 00027 00028 //Sound Systems 00029 #ifndef CHANNELS_H 00030 #define CHANNELS_H 00031 00032 #include <windows.h> 00033 #include <mmsystem.h> 00034 #include <dsound.h> 00035 //#include <dshow.h> 00036 //#include "eax.h" 00037 #include "DirectSound.hpp" 00038 00039 #include "deFileSystem.hpp" 00040 #include "deResource.hpp" 00041 00042 class deSFXManager; 00043 //class deChannel; 00044 00045 IdeResourceBase *deSound_LoadWAV(const char *filename, IdeFile *filesystem, deBoolean isThreaded); 00046 IdeResourceBase *deSound_LoadOGG(const char *filename, IdeFile *filesystem, deBoolean isThreaded); 00047 00048 class deSFXManager 00049 { 00050 public: 00051 deSFXManager(); 00052 virtual ~deSFXManager(); 00053 00054 public: 00055 IDirectSoundBuffer8 *m_pBuffer; 00056 IDirectSoundFXGargle *m_pGargle; 00057 IDirectSoundFXChorus *m_pChorus; 00058 IDirectSoundFXFlanger *m_pFlanger; 00059 IDirectSoundFXEcho *m_pEcho; 00060 IDirectSoundFXDistortion *m_pDistortion; 00061 IDirectSoundFXCompressor *m_pCompressor; 00062 IDirectSoundFXParamEq *m_pParamEq; 00063 IDirectSoundFXWavesReverb *m_pReverb; 00064 00065 DSFXGargle m_GargleSettings; 00066 DSFXChorus m_ChorusSettings; 00067 DSFXFlanger m_FlangerSettings; 00068 DSFXEcho m_EchoSettings; 00069 DSFXDistortion m_DistortionSettings; 00070 DSFXCompressor m_CompressorSettings; 00071 DSFXParamEq m_ParamEqSettings; 00072 DSFXWavesReverb m_ReverbSettings; 00073 00074 DSEFFECTDESC m_EffectDesc[DESFX_ENUM]; 00075 const GUID *m_RefID[DESFX_ENUM]; 00076 LPVOID *m_pIntPtr[DESFX_ENUM]; 00077 00078 DWORD m_NumEffects; 00079 DWORD m_NumActiveBufs; 00080 00081 public: 00082 deBoolean Initialize(IDirectSoundBuffer *buffer); 00083 void Destroy(); 00084 00085 void GetGargleSettings(deSFX_Gargle *gargle); 00086 void GetChorusSettings(deSFX_Chorus *chorus); 00087 void GetFlangerSettings(deSFX_Flanger *flanger); 00088 void GetEchoSettings(deSFX_Echo *echo); 00089 void GetDistortionSettings(deSFX_Distortion *distortion); 00090 void GetCompressorSettings(deSFX_Compressor *compressor); 00091 void GetParamEqSettings(deSFX_ParamEQ *param_eq); 00092 void GetReverbSettings(deSFX_Reverb *reverb); 00093 00094 void SetGargleSettings(deSFX_Gargle *gargle); 00095 void SetChorusSettings(deSFX_Chorus *chorus); 00096 void SetFlangerSettings(deSFX_Flanger *flanger); 00097 void SetEchoSettings(deSFX_Echo *echo); 00098 void SetDistortionSettings(deSFX_Distortion *distortion); 00099 void SetCompressorSettings(deSFX_Compressor *compressor); 00100 void SetParamEqSettings(deSFX_ParamEQ *param_eq); 00101 void SetReverbSettings(deSFX_Reverb *reverb); 00102 00103 deBoolean ActivateFX(); 00104 deBoolean EnableFX(deSFX_Type type); 00105 deBoolean DisableFX(); 00106 00107 deBoolean Play(deBoolean loop = deFALSE); 00108 deBoolean IsPlaying(); 00109 void Stop(); 00110 00111 void SetVolume(float vol); 00112 00113 }; 00114 00115 #endif 00116
1.3-rc3